#include <stdio.h>
int a[100][2],n,MaxN=0;
int main()
{
    int i,j,temp;
    void digui(int,int,int);
    while (scanf("%d",&n)!=EOF)
    {
        if (n==0) break;
        MaxN=0;
        for (i=0;i<n;i++)scanf("%d%d",&a[i][0],&a[i][1]);
        for (i=0;i<n;i++)
            for (j=i+1;j<n;j++)
                if (a[i][0]>a[j][0])
                {
                    temp=a[i][0];
                    a[i][0]=a[j][0];
                    a[j][0]=temp;
                    temp=a[i][1];
                    a[i][1]=a[j][1];
                    a[j][1]=temp;
                }
        for (i=0;i<n;i++)digui(i,a[i][1],1);
        printf("%d\n",MaxN);
    }
    return 0;
}
void digui(int c,int d,int t)
{
    int i;
    for (i=c+1;i<n;i++)if (a[i][0]>=d)digui(i,a[i][1],t+1);
    if (MaxN<t)MaxN=t;
}
